---
id: 60fad1cafcde010995e15306
title: 步骤 42
challengeType: 0
dashedName: step-42
---

# --description--

在提交表单时，向每个可提交的元素提供 `name` 属性很有用，并且是最佳实践。 此属性用于表单提交时识别不同的元素。

Except for the two `radio` inputs (which you have already named), give each submittable element a unique `name` attribute of your choosing.

# --hints--

你应该给要输入名字的 `input` 元素一个 `name` 属性。 _提示：可以使用 `first-name`_

```js
assert.isNotEmpty(document.querySelector('fieldset:nth-child(1) > label:nth-child(1) > input')?.name);
```

应该给姓氏（last name）`input` 元素一个 `name` 属性。 _提示：可以使用 `last-name`_

```js
assert.isNotEmpty(document.querySelector('fieldset:nth-child(1) > label:nth-child(2) > input')?.name);
```

应该给 `email` 添加一个 `name` 属性。 _提示：可以使用 `email`_

```js
assert.isNotEmpty(document.querySelector('input[type="email"]')?.name);
```

应该给 `password` 添加一个 `name` 属性。 _提示：可以使用 `password`_

```js
assert.isNotEmpty(document.querySelector('input[type="password"]')?.name);
```

应该给 `checkbox` 添加一个 `name` 属性。 _提示：可以使用 `terms`_

```js
assert.isNotEmpty(document.querySelector('input[type="checkbox"]')?.name);
```

应该给 `file` 添加一个 `name` 属性。 _提示：可以使用 `file`_

```js
assert.isNotEmpty(document.querySelector('input[type="file"]')?.name);
```

应该给 `number` 添加一个 `name` 属性。 _提示：可以使用 `age`_

```js
assert.isNotEmpty(document.querySelector('input[type="number"]')?.name);
```

你应该给 `select` 元素一个 `name` 属性。 _提示：可以使用 `referrer`_

```js
assert.isNotEmpty(document.querySelector('select')?.name);
```

应该给 `textarea` 元素一个 `name` 属性。 _提示：可以使用 `bio`_

```js
assert.isNotEmpty(document.querySelector('textarea')?.name);
```

应该给 `option` 元素一个 `name` 属性。

```js
[...document.querySelectorAll('option')]?.forEach(option => assert.isUndefined(option?.name));
```

不应该给任何 `label` 元素一个 `name` 属性。

```js
[...document.querySelectorAll('label')]?.forEach(label => assert.isUndefined(label?.name));
```

不应该给任何 `fieldset` 元素一个 `name` 属性。

```js
[...document.querySelectorAll('fieldset')]?.forEach(fieldset => assert.isEmpty(fieldset?.name));
```

# --seed--

## --seed-contents--

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Registration Form</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <h1>Registration Form</h1>
    <p>Please fill out this form with the required information</p>
    <form method="post" action='https://register-demo.freecodecamp.org'>
--fcc-editable-region--
        <fieldset>
        <label for="first-name">Enter Your First Name: <input id="first-name" type="text" required /></label>
        <label for="last-name">Enter Your Last Name: <input id="last-name" type="text" required /></label>
        <label for="email">Enter Your Email: <input id="email" type="email" required /></label>
        <label for="new-password">Create a New Password: <input id="new-password" type="password" pattern="[a-z0-5]{8,}" required /></label>
      </fieldset>
      <fieldset>
        <legend>Account type (required)</legend>
        <label for="personal-account"><input id="personal-account" type="radio" name="account-type" checked /> Personal</label>
        <label for="business-account"><input id="business-account" type="radio" name="account-type" /> Business</label>
      </fieldset>
      <fieldset>
        <label for="profile-picture">Upload a profile picture: <input id="profile-picture" type="file"/></label>
        <label for="age">Input your age (years): <input id="age" type="number" min="13" max="120" /></label>
        <label for="referrer">How did you hear about us?
          <select id="referrer">
            <option value="">(select one)</option>
            <option value="1">freeCodeCamp News</option>
            <option value="2">freeCodeCamp YouTube Channel</option>
            <option value="3">freeCodeCamp Forum</option>
            <option value="4">Other</option>
          </select>
        </label>
        <label for="bio">Provide a bio:
          <textarea id ="bio" rows="3" cols="30" placeholder="I like coding on the beach..."></textarea>
        </label>
      </fieldset>
      <label for="terms-and-conditions">
        <input id="terms-and-conditions" type="checkbox" required /> I accept the <a href="https://www.freecodecamp.org/news/terms-of-service/">terms and conditions</a>
      </label>
      --fcc-editable-region--
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>
```

```css
body {
  width: 100%;
  height: 100vh;
  margin: 0;
  background-color: #1b1b32;
  color: #f5f6f7;
}

label {
  display: block;
  margin: 0.5rem 0;
}

```
